Version control, also known as revision control or source control, is the management of changes to computer programs. Typically a version control system maintains a history of changes to a program so that it is possible to navigate forward or backward through the history to obtain a particular version of the program. Version control systems also typically enable different versions of a program to be compared, restored, or, in some cases, merged.